package com.softtown.modules.sys.service;

import com.github.pagehelper.PageInfo;
import com.softtown.common.service.BaseService;
import com.softtown.common.utils.Result;
import com.softtown.modules.sys.dto.CompSysUserEmplInfoDTO;
import com.softtown.modules.sys.dto.CompSysUserEmplPageDTO;
import com.softtown.modules.sys.dto.SysUserDTO;
import com.softtown.modules.sys.entity.CompSysUserEmplEntity;
import com.softtown.modules.sys.vo.CompSysUserEmplBasicsVO;

import java.util.List;

/**
 * @author: Dingyayong
 * @Date: 2019/6/4 10:01
 * @Description:
 */
public interface CompSysUserEmplService extends BaseService<CompSysUserEmplEntity> {

    /**
     * 找出该公司所有员工
     *
     * @param compId
     * @return
     * @author Dingyayong
     * @date 2019/6/4 10:03
     */
    List<CompSysUserEmplEntity> findAllCompEmpl(Long compId);

    /**
     * 找出员工公司对应数据
     * @param compId
     * @param userId
     * @return com.softtown.modules.sys.entity.CompSysUserEmplEntity
     * @Author fuming
     * @Date 2020/5/27 16:34
     */
    CompSysUserEmplEntity findCompEmpl(Long compId, Long userId);

    /**
     * 找出员工公司对应数据
     * @param compId
     * @param emplId
     * @return com.softtown.modules.sys.entity.CompSysUserEmplEntity
     * @Author fuming
     * @Date 2020/5/27 16:34
     */
    CompSysUserEmplEntity findEmpl(Long compId, Long emplId);

    /**
     * 添加
     * @param sysUserDTO
     * @return void
     * @Author fuming
     * @Date 2020/5/27 16:35
     */
    void addEmplInfo(SysUserDTO sysUserDTO);

    /**
     * 激活用户
     *
     * @param compId
     * @param userId
     * @return
     * @author Dingyayong
     * @date 2019/6/6 11:31
     */
    Result activate(Long compId, Long userId);

    /**
     * 更新数据
     * @param compSysUserEmplEntity
     * @return void
     * @Author fuming
     * @Date 2020/5/27 16:35
     */
    void updateUserEmpl(CompSysUserEmplEntity compSysUserEmplEntity);

    /**
     * 用户管理分页
     * @param compSysUserEmplPageDTO
     * @return com.github.pagehelper.PageInfo<com.softtown.modules.sys.entity.CompSysUserEmplEntity>
     * @Author fuming
     * @Date 2020/5/27 16:37
     */
    PageInfo<CompSysUserEmplEntity> findUserPage(CompSysUserEmplPageDTO compSysUserEmplPageDTO);

    /**
     * 更新
     * @param sysUserDTO
     * @return void
     * @Author fuming
     * @Date 2020/5/27 16:37
     */
    void updateEmplInfo(SysUserDTO sysUserDTO);

    /**
     * 根据公司id和用户id获取员工基本信息
     *
     * @param compSysUserEmplInfoDTO
     * @return CompSysUserEmplBasicsVO
     * @author Dingyayong
     * @date 2019-09-12 00:57
     */
    Result<CompSysUserEmplBasicsVO> getCompUserEmplBasics(CompSysUserEmplInfoDTO compSysUserEmplInfoDTO);

    /**
     * 通过公司id和用户id查出员工姓名
     *
     * @param compId
     * @param userId
     * @return java.lang.String
     * @author fuming
     * @date 2019/11/8 14:38
     */
    String selectEmplName(Long compId, Long userId);

    /**
     * 获取该公司用户激活总数
     * @param compId
     * @return int
     * @Author fuming
     * @Date 2020/5/27 16:37
     */
    int getActiveUser(Long compId);
}
